package edu.ccut.saturn.component;

/**
 * In Runtime user {@link IParameter} to deposit parameter value and type.
 * 
 * @author 谷钰
 * @version 1.0 2008.9.09
 * 
 */
public interface IParameter {

	/**
	 * Get parameter value
	 * 
	 * @return
	 */
	public Object getValue();

	/**
	 * Set parameter value.
	 * 
	 * @param value
	 * @throws IllegalArgumentException
	 *             if value class type isn't equals parameter need value class
	 *             type, it's will throw {@link IllegalArgumentException}
	 */
	public void setValue(Object value);

	/**
	 * Get parameter value classType
	 * 
	 * @return
	 */
	public Class<?> getClassType();
}
